Repository navigation
Make CI green: ChangeSet fix + lowest-deps bumps for PHP 8.4+ - #20
Merged
Merged
Conversation
…eSet persist() put the entity into the IdentityMap but never into the ChangeSet, so find() right after persist() returned an instance the ChangeSet called new, and persisting the same instance again fired POST_CREATE a second time instead of POST_UPDATE. Fixes ClearTest::testClearRemovesChangeSetTracking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 8.2-8.5 - tracy/tracy ^2.9, symfony/console ^7.0.3: older ones have implicitly nullable parameters, an E_DEPRECATED (= test failure) on PHP 8.4+ - phpstan/phpstan ^1.11.10: <=1.11.9 crashes on PHP 8.5 (IS_READONLY type) - conflict with transitive versions that break on PHP 8.4+ (nette/neon, symfony/string, psr/http-factory) or lack mb_ord() (polyfill-mbstring <1.3, tests run with php -n, so no ext-mbstring) - phpstan-low.neon: drop the ignore that no longer matches PHP >=8.2 stays supported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dump reads through search, so right after the restore it could see fewer than 11 documents and the test failed on \$exploded[10] (flaky, hit PHP 8.2 standard on #20). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All five red jobs on
v2.0had four independent causes. Each was reproduced and fixed locally across the full matrix (PHP 8.2/8.5 × standard/lowest) against ES 9.2.2 configured like CI.1.
ClearTest::testClearRemovesChangeSetTracking(every test job): real bugpersist()put the entity into the IdentityMap but never marked it existing in theChangeSet.find()then returned that instance and the ChangeSet still treated it as new. The visible effect: persisting the same instance twice firedPOST_CREATEtwice instead ofPOST_UPDATE.persist()now callsmarkExisting()after all events have been dispatched. A regression test is added inPersistTest.2. PHPStan (lowest deps)
PHPStan ≤ 1.11.9 crashes on PHP 8.5 (
Type of …ReflectionClass::IS_READONLY must be compatible). The minimum is now^1.11.10, and the ignore inphpstan-low.neonthat no longer matched has been removed.3. PHP 8.5 lowest (110/110 failures)
Implicitly nullable parameters are
E_DEPRECATEDon PHP 8.4+, and Tester fails on them. The table lists the first fixed versions:^2.9^7.0.3<3.3.4 || >=3.4.0 <3.4.4(3.4.0–3.4.3 regressed)<6.4.3 || >=7.0 <7.0.3<1.1Transitive packages are constrained via
conflictrather than new direct requirements.4. PHP 8.2 lowest (
mb_ord()undefined, 21 failures)Tests run with
php -n, so there is no ext-mbstring, and polyfill-mbstring 1.0.0 has nomb_ord. Fixed with conflictsymfony/polyfill-mbstring <1.3.PHP
>=8.2support is unchanged.🤖 Generated with Claude Code